<?php

class Visitable_Abstract
{
	var $what;
	var $service;

	public function __construct ($service)
	{
		$this->service = $service;
	} // end of __construct

	public function setWhat ($what)
	{
		$this->what = $what;
		return $this;
	} // end of method setWhat

	public function getWhat ()
	{
		return $this->what;
	} // end of method getWhat

	public function visit ()
	{
		return $this->service->visit($this);
	} // end of method visit

}

